<?php

include_once('Client_ES1_hello.php');
include_once('Client_ES1_helloResponse.php');
include_once('Client_ES1_SendBalanceInvoice.php');
include_once('Client_ES1_balanceInvoiceMessage.php');
include_once('Client_ES1_SendBalanceInvoiceResponse.php');
include_once('Client_ES1_RequestContractStatus.php');
include_once('Client_ES1_RequestContractStatusResponse.php');
include_once('Client_ES1_RequestContract.php');
include_once('Client_ES1_clientRegistrationMessage.php');
include_once('Client_ES1_RequestContractResponse.php');
include_once('Client_ES1_SupplierChangeReply.php');
include_once('Client_ES1_supplierChangeReplyMessage.php');
include_once('Client_ES1_SupplierChangeReplyResponse.php');
include_once('Client_ES1_SendSupplyTerminationMessage.php');
include_once('Client_ES1_supplyTerminationMessage.php');
include_once('Client_ES1_SendSupplyTerminationMessageResponse.php');
include_once('Client_ES1_RequestInvoices.php');
include_once('Client_ES1_requestInvoicesMessage.php');
include_once('Client_ES1_RequestInvoicesResponse.php');
include_once('Client_ES1_invoice.php');
include_once('Client_ES1_SendMeteringReadings.php');
include_once('Client_ES1_meteringMessage.php');
include_once('Client_ES1_SendMeteringReadingsResponse.php');
include_once('Client_ES1_SendConsumptionProfile.php');
include_once('Client_ES1_consumptionProfileMessage.php');
include_once('Client_ES1_SendConsumptionProfileResponse.php');
include_once('Client_ES1_TerminateContract.php');
include_once('Client_ES1_clientTerminationMessage.php');
include_once('Client_ES1_TerminateContractResponse.php');


/**
 *
 */
class Client_ES1_ElectricitySupplier extends SoapClient
{

  /**
   *
   * @var array $classmap The defined classes
   * @access private
   */
  private static $classmap = array(
    'hello' => 'Client_ES1_hello',
    'helloResponse' => 'Client_ES1_helloResponse',
    'SendBalanceInvoice' => 'Client_ES1_SendBalanceInvoice',
    'balanceInvoiceMessage' => 'Client_ES1_balanceInvoiceMessage',
    'SendBalanceInvoiceResponse' => 'Client_ES1_SendBalanceInvoiceResponse',
    'RequestContractStatus' => 'Client_ES1_RequestContractStatus',
    'RequestContractStatusResponse' => 'Client_ES1_RequestContractStatusResponse',
    'RequestContract' => 'Client_ES1_RequestContract',
    'clientRegistrationMessage' => 'Client_ES1_clientRegistrationMessage',
    'RequestContractResponse' => 'Client_ES1_RequestContractResponse',
    'SupplierChangeReply' => 'Client_ES1_SupplierChangeReply',
    'supplierChangeReplyMessage' => 'Client_ES1_supplierChangeReplyMessage',
    'SupplierChangeReplyResponse' => 'Client_ES1_SupplierChangeReplyResponse',
    'SendSupplyTerminationMessage' => 'Client_ES1_SendSupplyTerminationMessage',
    'supplyTerminationMessage' => 'Client_ES1_supplyTerminationMessage',
    'SendSupplyTerminationMessageResponse' => 'Client_ES1_SendSupplyTerminationMessageResponse',
    'RequestInvoices' => 'Client_ES1_RequestInvoices',
    'requestInvoicesMessage' => 'Client_ES1_requestInvoicesMessage',
    'RequestInvoicesResponse' => 'Client_ES1_RequestInvoicesResponse',
    'invoice' => 'Client_ES1_invoice',
    'SendMeteringReadings' => 'Client_ES1_SendMeteringReadings',
    'meteringMessage' => 'Client_ES1_meteringMessage',
    'SendMeteringReadingsResponse' => 'Client_ES1_SendMeteringReadingsResponse',
    'SendConsumptionProfile' => 'Client_ES1_SendConsumptionProfile',
    'consumptionProfileMessage' => 'Client_ES1_consumptionProfileMessage',
    'SendConsumptionProfileResponse' => 'Client_ES1_SendConsumptionProfileResponse',
    'TerminateContract' => 'Client_ES1_TerminateContract',
    'clientTerminationMessage' => 'Client_ES1_clientTerminationMessage',
    'TerminateContractResponse' => 'Client_ES1_TerminateContractResponse');

  /**
   *
   * @param array $config A array of config values
   * @param string $wsdl The wsdl file to use
   * @access public
   */
  public function __construct(array $options = array(), $wsdl = 'http://ats.cs.ut.ee:8080/ElectricitySupplier/ElectricitySupplier?wsdl')
  {
    foreach(self::$classmap as $key => $value)
    {
      if(!isset($options['classmap'][$key]))
      {
        $options['classmap'][$key] = $value;
      }
    }

    parent::__construct($wsdl, $options);
  }

  /**
   *
   * @param Client_ES1_hello $parameters
   * @access public
   */
  public function hello($parameters)
  {
    return $this->__soapCall('hello', array($parameters));
  }

  /**
   *
   * @param Client_ES1_TerminateContract $parameters
   * @access public
   */
  public function TerminateContract($parameters)
  {
    return $this->__soapCall('TerminateContract', array($parameters));
  }

  /**
   *
   * @param Client_ES1_SendSupplyTerminationMessage $parameters
   * @access public
   */
  public function SendSupplyTerminationMessage($parameters)
  {
    return $this->__soapCall('SendSupplyTerminationMessage', array($parameters));
  }

  /**
   *
   * @param Client_ES1_SendMeteringReadings $parameters
   * @access public
   */
  public function SendMeteringReadings($parameters)
  {
    return $this->__soapCall('SendMeteringReadings', array($parameters));
  }

  /**
   *
   * @param Client_ES1_SendBalanceInvoice $parameters
   * @access public
   */
  public function SendBalanceInvoice($parameters)
  {
    return $this->__soapCall('SendBalanceInvoice', array($parameters));
  }

  /**
   *
   * @param Client_ES1_SendConsumptionProfile $parameters
   * @access public
   */
  public function SendConsumptionProfile($parameters)
  {
    return $this->__soapCall('SendConsumptionProfile', array($parameters));
  }

  /**
   *
   * @param Client_ES1_RequestContract $parameters
   * @access public
   */
  public function RequestContract($parameters)
  {
    return $this->__soapCall('RequestContract', array($parameters));
  }

  /**
   *
   * @param Client_ES1_SupplierChangeReply $parameters
   * @access public
   */
  public function SupplierChangeReply($parameters)
  {
    return $this->__soapCall('SupplierChangeReply', array($parameters));
  }

  /**
   *
   * @param Client_ES1_RequestInvoices $parameters
   * @access public
   */
  public function RequestInvoices($parameters)
  {
    return $this->__soapCall('RequestInvoices', array($parameters));
  }

  /**
   *
   * @param Client_ES1_RequestContractStatus $parameters
   * @access public
   */
  public function RequestContractStatus($parameters)
  {
    return $this->__soapCall('RequestContractStatus', array($parameters));
  }

}
